package com.cn.jinl.api;

import com.cn.jinl.domain.ProductStorageOutRelate;
import com.cn.jinl.domain.ProductStorageRelate;
import com.cn.jinl.domain.ProductStorageRelateExample;
import com.cn.jinl.utils.QueryForm;

import java.util.List;
import java.util.Map;

public interface IProductStorageRelateService {

    List<ProductStorageRelate> getProductStorageRelateList(ProductStorageRelate productStorageRelate)throws Exception;
    List<ProductStorageRelate> getProductStorageRelateToday()throws Exception;
    List<ProductStorageRelate> getOnDutyStorageHisByPlanId(String planId)throws Exception;

    List<ProductStorageRelate> getProductStorageRelateListByTaskId(String taskId,String planId)throws Exception;

    String addBatchProductStorageRelates(List<ProductStorageRelate> productStorageRelates)throws Exception;

    String updateLockOnDutyProduct(ProductStorageRelate productStorageRelates)throws Exception;

    String deleteOnDutyProductCodeBox(ProductStorageRelate productStorageRelate)throws Exception;

    Map<String,Integer> getLeftProductStorage()throws Exception;


    Integer getCount(ProductStorageRelateExample example);

    int getCountByReporting(QueryForm queryForm);

    Map<String, Integer> getCountByReportingBatch(String itemId, List<String> gradeValues);

    String updateStorageInAndOutBoxCodeStep1()throws Exception;

    String updateStorageInAndOutBoxCodeStep2()throws Exception;

    String addBatchProductStorageRelates1(List<ProductStorageRelate> productStorageRelates)throws Exception;

    List<ProductStorageRelate> getOrderGradesByAppMh(QueryForm queryForm)throws Exception;
}
